//
//  NZKAlertView.h
//  ProjectBoss
//
//  Created by 聂志康 on 2018/8/22.
//  Copyright © 2018 weipainetwork. All rights reserved.
//

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@class NZKAlertView;

@protocol NZKAlertViewDelegate <NSObject>

@optional

/**
 点击右边按钮时调用的代理方法（文字自定）

 @param alertView 返回点击的那个alert，用于一个界面中多个地方用到alertView时做区分判断
 */
- (void)didClickOtherButtonOnNZKAlertView:(NZKAlertView *)alertView;


/**
 点击左边按钮时调用的代理方法（通常为确定、取消按钮，文字自定）
 
 @param alertView 返回点击的那个alert，用于一个界面中多个地方用到alertView时做区分判断
 */
- (void)didClickCancelButtonOnNZKAlertView:(NZKAlertView *)alertView;

@end

@interface NZKAlertView : UIView

@property (nonatomic, weak, nullable) id <NZKAlertViewDelegate> delegate;


/**
 创建提示窗口

 @param title 提示标题  文字较小
 @param message 提示文字  文字较大
 @param delegate 代理对象
 @param cancelButtonTitle 取消按钮文字，在左边
 @param otherButtonTitle 确认按钮文字，在右边
 @return 返回创建好的NZKAlertView对象
 */
- (instancetype)initWithTitle:(nullable NSString *)title message:(nullable NSString *)message delegate:(nullable id <NZKAlertViewDelegate>)delegate cancelButtonTitle:(NSString *)cancelButtonTitle otherButtonTitle:(nullable NSString *)otherButtonTitle;


/**
 创建自定义视图提示窗口

 @param customView 用户自定义视图
 @param title 提示标题  文字较小
 @param delegate 代理对象
 @param cancelButtonTitle 取消按钮文字，在左边
 @param otherButtonTitle 确认按钮文字，在右边
 @return 返回创建好的NZKAlertView对象
 */
- (instancetype)initWithCustomView:(nullable UIView *)customView title:(nullable NSString *)title delegate:(nullable id<NZKAlertViewDelegate>)delegate cancelButtonTitle:(nullable NSString *)cancelButtonTitle otherButtonTitle:(nullable NSString *)otherButtonTitle;


/**
 创建自定义提示视图

 @param imageView 用户自定义的图示，位于文字上方
 @param title 用户自定的文字
 @param delegate 点击按钮后可设置执行代码的代理对象
 @param buttonTitle 按钮文字
 @return 返回创建好的NZKAlertView对象
 */
- (instancetype)initWithImageView:(UIImageView *)imageView title:(nullable NSString *)title delegate:(nullable id<NZKAlertViewDelegate>)delegate buttonTitle:(nullable NSString *)buttonTitle;


/**
 显示提示窗口，创建完后调用此对象方法
 */
- (void)show;


/**
 关闭提示窗口，代理方法实现后会默认调用，这里放出来方便灵活使用
 */
- (void)done;

@end

NS_ASSUME_NONNULL_END
